home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LSD Docs
/
LSD Docs.iso
/
FILEZ
/
lsd12.dms
/
lsd12.adf
/
33
/
33
Wrap
Text File
|
1989-08-12
|
16KB
|
307 lines
JAMCRACKERPRO V1.0A BY XAG
Typed by ??? Edited by PARASITE.
INTRODUCTION
The original JamCracker had several limitations (and loads of bugs) so I took
it upon myself to do an updated version. What started out as a project to
simply fix the bugs turned into a major revision of the entire editor, so
we've decided to called this new version JamCrackerPro. JamCrackerPro looks
similar to JamCracker, and currently uses virtually the same song format for
compatibility (this will change with the next release), but it now has many
new options and improvments, not to mention all the bug fixes.
IMPROVEMENTS SINCE JAMCRACKER V1.0:
- Makes full use of Requester library
- Most (hopefully all) bugs fixed
- New wave editor functions (see WAVEFORM EDITOR section)
- New Prefs feature (see PREFERENCES section)
- Improved layout
- Improved file handling (checks if files exists when saving etc.)
- Improved used of keyboard (especially in Pattern Editor)
- Program auto-detaches itself from CLI
- Uses Topaz font for greater convenience
- New pattern edit functions (see PATTERN EDITOR section)
- Now possible to save loaded samples
- Seperate song name, saved with module
- Significantly faster play-routine (see end)
JamCrackerPro shouldn't really be run from Workbench, but nothing disasterous
will happen if it is.
SONG CONTROL
From this window you control such things as playing and stopping the song;
loading, saving and deleting songs and editing the sequence of patterns that
makes up a song. Here is a description of the various sections of the
window:
LENGTH: Length of the current song in patterns. A song is always at
least one pattern long. The maximum length of a song is $FF
patterns.
POSITION: The current position (in patterns) in the song, zero being the
start.
PATTERN: The pattern number assigned to the current position.
SIZE: The size of the whole song in bytes, including instruments.
FREE MEM: The amount of free Chip-RAM in bytes. JamCrackerPro uses
only Chip-RAM for it's data
PLAY: Plays the song starting from the current position. After the
last pattern in the sequence has played, the song will restart
from position zero.
STOP: Stops the song, leaving the current position intact.
LOAD: Allows you to load a new song.
SAVE: Allows you to save the current song. The name you type in to the
songname box (18 chars) is saved after the actual module. Modules
without the name extension will adopt their filenames as their
songname.
CLEAR: Clear everything allowing you to start from scratch. The only
thing left intact is the contents of the Waveform Editor
window and the Waveform Editor's undo buffer.
QUIT: Allows you to exit JamCrackerPro.
ABOUT: Brings up the obligatory "about..." requester.
SHOW: Brings up a file-requester simply for the purpose of examining
disk's contents.
DELETE: Allows you to delete files.
PREFS: Brings up the prefs window. See the next section.
PREFERENCES
This function enables you to specify certain defaults which will take effect
every time you run JamCrackerPro. You can specify the following settings:
- Screen colours. All four colours can be edited using the Requester
library's palette editor.
- Low-pass filter. This can be turned on or off as desired.
- Default directory paths. You can specify the default directories for
Songs, Patterns, Waveforms and Instruments (raw samples).
- Blank step characters. These are the characters used to display a blank
step in the pattern editor.
If you make some changes to the preferences and then decide you don't like
them, you can reload the last-saved preferences using the LOAD option. When
you're happy with the settings, use SAVE to store them. The preferences file
is called "S:JamCrackerPro.prefs".
WAVEFORM EDITOR
Here you can edit, load and save simple custom waveforms, which can be used
as instruments. Custom waveform sizes are $40 bytes. They are much smaller
than samples, and therefore, you can use a lot of them without wasting much
memory. You can create and edit waveforms by drawing in the window with the
mouse. Here's a description of the gadgets:
ZERO: Clears the current waveform.
SINE: Generates a sine-shaped waveform.
TRIANGLE: Generates a triangle-shaped waveform.
SQUARE: Generates a square-shaped waveform.
SAW: Generates a sawtooth-shaped waveform.
RANDOM: Generates a randomly shaped waveform (can be used as the basis for
simple white-noise effects - see the PATTERN EDITOR section).
MIX: Mixes the contents of the undo buffer with the current waveform.
This enables you to produce some interesting waveshapes. The undo
buffer is left intact after mixing - see later for tips on use.
LOUD: Increases the amplitude of the waveform by a factor of two.
DOUBLE: Increases the pitch of the waveform by one octave.
HALVE: Replaces this waveform with its first half (if the waveform was
previously doubled, its pitch will halve).
UNDO: Lets you undo the results of ANY waveform-editor function apart
from mix.
LOAD: Allows you to load a waveform.
SAVE: Allows you to store waveforms.
THE MIX FUNCTION
This function will mix together (add and average) two waveforms, one of which
is the variable waveform in the editor window and the other is the fixed
waveform in the undo buffer. To mix a triangle waveform and a square
waveform, with the latter being fixed, first select the SQUARE option, and
then the TRIANGLE option. This means that the undo buffer contains a square
waveform, with the triangle waveform on-screen. Selecting mix will mix the
two. Repeatedly selecting mix will cause the shape of the on-screen waveform
to get closer and closer to the shape of the fixed source waveform, in this
case the square wave.
The MIX function can be used as an opposite to the LOUD function. To halve
the amplitude of a waveform, make sure the waveform is in the edit-window.
Now select ZERO and then MIX. The resultant waveform will be your original
waveform with half it's amplitude.
INSTRUMENT WINDOW
This window allows you to manage your instruments, be they custom waveforms
or samples.
NUMBER: The number of the current instrument. You can have up to $100
instruments in any one song, memory permitting.
SIZE: The size of the current instrument in bytes. Custom waveforms
take up $180 bytes, even though the actual waveform data is $40
bytes.
TYPE: Can be "(None)" if the current instrument position is empty,
"Sample" if the instrument is a sample or "Synth" if it is a
custom waveform.
NAME: The (displayable part of the) name of this instrument (custom
waveforms don't have names).
LOAD: Allows you to load raw sample data.
SAVE: Allows you to save the current sample as raw data. If the
instrument uses a custom waveform, this waveform will be saved as
if you saved it from the Waveform Editor (ie. a $40 byte raw
sample).
CLEAR: Removes the selected instrument from memory.
ONCE/LOOP:Lets you determine if this instrument is played once, or looped
continuously. Custom waveforms are always looped.
COPY FROM Uses the current waveform in the Waveform Editor window as an
EDITOR: instrument.
COPY TO Copies the instrument's waveform into the Waveform Editor
EDITOR: window. This is only possible if (a) the instrument is a custom
waveform or (b) if the size of the sample is $40 bytes.
OCTAVE: Can be UPPER or LOWER. It is the octave at which notes are edited
and played directly.
PATTERN EDITOR
In this window you can edit the patterns used to make up a song. Patterns
consist of note data for four channels, and can be a maximum of $40 steps
(notes) long. Here's what you can do:
- Use the up/down cursor keys to move up/down the pattern.
- Use left/right shift and up/down cursor keys to skip $10 notes at a time.
- Use the left/right cursor keys to select what to edit. This can be notes
or note-data (instrument, effects etc.)
- Use left/right shift and left/right cursor keys to move the cursor to
either edge of the pattern edit area.
- Use F1 while editing notes to toggle between upper and lower octaves.
The format of a step is: XX YYY IISAAVVPVVVPPP
where: IISAAVVPVVVPPP are the note-data numbers
XX is the step number
YYY is the note itself, or a blank step if there is no note
II is the number of the instrument used to play this note
S is the pattern play speed
AA is the arpeggio info
VV is the vibrato info
P is the phase-shift speed
VVV is the volume info
PPP is the pitch slide/portamento info
To enter a note, position the cursor over the YYY area and press a "note
key". The same applies to all other info numbers; position the cursor, and
enter the data.
S - The play speed is a number from 0-$F. It is the time in 1/50th of a
second to wait between two notes. If it is 0, the speed will remain
unaffected.
AA - These are two numbers from 0-$E each. They set the arpeggio offsets.
Arpeggio is the rapid change of pitch of one note, so that it will
sound like two or three notes played simultaneously. Each number
is added to the value of the note at that step and the three note
values are played in rapid succession. Thus, if the arpeggio info
was 00, the note would play without any alteration. If they were 30 and
the note was a C-2 (C in octave 2), the notes played in rapid
succession would be C-2 and D#2.
VV - These are two numbers, from 0-$E and 0-$F respectively. The first
number is the amplitude of the modulating waveform used to create the
vibrato, and the second is the frequency of this waveform (in effect,
they represent the depth and speed of the vibrato, respectively).
P - The phase shift speed is a number from 0-$F. It will have effect only
on instruments formed from custom waveforms. What is does is to shift
the phase of the wave at a certain speed, which gives the resultant wave
a more interesting sound.
VVV - The first character of the volume info is a letter representing the
function to use, and can be S, U or D. The S function means that the
number following the letter (0-$40) is used to set the absolute volume
for the current note. The U function means that the note's volume will
be increased from the current value to $40 with a speed given by the
number following (0-$40 again). The D function is the opposite of the U
function in that the volume is decreased from it's current value to
zero volume. With clever use of these effects, complex amplitude
envelopes can be procuced.
PPP - The first character is the function, S, U or D. The S function, when
used in conjunction with a note, causes the pitch to slide from it's
current value up or down to the pitch of the note with a speed
determined by the number following the S. The U function causes the
pitch of the note playing to slide up at the speed specified, and the D
function does the same but slides the pitch down.
All effects except arpeggio will stay in effect as long as possible, once
they've been activated.
The TAB key, pressed at any position in AAVVPVVVPPP will enter one or more
"-" characters. It means that the current effect (over which you have
pressed tab) will stop. Using the tab function over the volume effect will
cause the volume to stay at its current level. Adversely, using it over the
pitch effect will cause the pitch to return to it's former value (ie. the
value of that last note played).
Pressing the TAB key over YYY will either make the current note the last note
of this pattern (place a "pattern break") or it will make the size $40 steps
again if the cursor is over the last step in the pattern.
To insert a note, press RETURN. All notes starting at the current position
will be moved down. To delete a note, press BACKSPACE. All notes starting
at the next position will be moved up. The last note becomes "empty". To
wipe a note without shifting the pattern data, press DEL.
When entering a note YYY, it will sound. When entering an info-number, you
will hear nothing.
Here is what the Pattern Editor window info means:
- PATTERN displays the current pattern number. You may have up to $100
patterns in memory (if they fit). You can't increase the PATTERN number
if the current pattern is not yet used as part of the song. Note also
that you can't clear a pattern from memory like an instrument.
- CUT, COPY, and PASTE cuts, copies or pastes a pattern.
- CHANNEL lets you change the channel you want to edit.
- ON/OFF selects whether or not a channel can be heard while playing the
song.
- CUT, COPY, and PASTE cuts, copies or pastes a channel.
- PLAY plays this pattern.
- STOP stops playing.
- LOAD loads a pattern.
- SAVE stores a pattern.
- EDIT allows you to perform some versatile editing functions on the
current channel of the current pattern. See next sub-section.
PATTERN EDIT FUNCTIONS:
Here's what you can do:
- CHANGE INSTR allows you to substitute one instrument number for another.
- DELETE INSTR allows you to delete any notes that use the specified
instrument.
- NOTE UP/DOWN allows you to increase/decrease the pitch-value of all notes
in the current channel of the current pattern by one semitone.
- OCTAVE UP/DOWN is similar to NOTE UP/DOWN but changes the pitch by 12
semitones, ie. one octave.
HOW TO MAKE PSEUDO-WHITE-NOISE EFFECTS:
Define a random waveform (you may have to make several attempts to produce a
nice one). Write a pattern using the wave, and use arpeggio values to give
the sound a more white-noise feel (typical values for the arpeggio are $C3).
You can use phasing to make the pseudo-white-noise sound smoother. It is
best to use low note-values for the white-noise effects, as high values
will betray the fact that you're using a fixed waveform.
SPECIAL KEYS
When you're not editing info-numbers in the Pattern Editor, the following
keys will generate a tone:
ZSXDCVGBHNJM (lower octave), Q2W3ER5T6Y7U (upper octave)
The F1 key will change the octave (displayed in the Instrument window).
When changing values with the small arrow gadgets, you can hold down either
shift key to increment/decrement in steps of $10 rather than steps of 1.
PLAY-ROUTINE
I have optimised and modified the play-routine so that it is smaller and much
faster. If the phasing feature of JamCrackerPro is not used much (or at all)
on custom waveforms, the raster-time usage is much, much less with the
JamCrackerPro play-routine than it would have been with the original
JamCracker play-routine. This is because custom waveforms are only phased
when necessary, not all the time as with the old play-routine. In general,
the JamCrackerPro play-routine should always prove to be faster than the
original JamCracker play-routine unless you use phasing on custom waveforms
on all four channels simultaneously.
End.